Java Technologies ImmutableList, ImmutableSet, ImmutableMap এর ব্যবহার গাইড ও নোট

311

Guava লাইব্রেরি Immutable Collections (ImmutableList, ImmutableSet, ImmutableMap) এর মাধ্যমে Java প্রোগ্রামে ডেটা মিউটেবল (পরিবর্তনযোগ্য) হওয়ার ঝুঁকি কমায়। Immutable Collections ব্যবহার করলে ডেটা Thread-Safe হয় এবং অনিচ্ছাকৃত পরিবর্তন থেকে সুরক্ষিত থাকে।


ImmutableList

ImmutableList কী?

ImmutableList হল এমন একটি তালিকা (list), যা তৈরি হওয়ার পর পরিবর্তন করা যায় না। এটি ArrayList-এর মতো কাজ করে কিন্তু মিউটেবল নয়।

ImmutableList তৈরি করা

import com.google.common.collect.ImmutableList;

public class ImmutableListExample {
    public static void main(String[] args) {
        ImmutableList<String> fruits = ImmutableList.of("Apple", "Banana", "Guava");
        System.out.println(fruits);

        // ImmutableList Builder ব্যবহার
        ImmutableList<String> vegetables = ImmutableList.<String>builder()
                .add("Carrot")
                .add("Potato")
                .add("Tomato")
                .build();
        System.out.println(vegetables);

        // fruits.add("Mango"); // এটি কম্পাইল-টাইমে এরর দেবে, কারণ ImmutableList পরিবর্তন করা যায় না।
    }
}

ImmutableSet

ImmutableSet কী?

ImmutableSet হল এমন একটি সেট (set), যা তৈরি হওয়ার পর পরিবর্তন করা যায় না। এটি HashSet-এর মতো কাজ করে কিন্তু Thread-Safe এবং মিউটেবল নয়।

ImmutableSet তৈরি করা

import com.google.common.collect.ImmutableSet;

public class ImmutableSetExample {
    public static void main(String[] args) {
        ImmutableSet<String> colors = ImmutableSet.of("Red", "Green", "Blue");
        System.out.println(colors);

        // ImmutableSet Builder ব্যবহার
        ImmutableSet<String> shapes = ImmutableSet.<String>builder()
                .add("Circle")
                .add("Square")
                .add("Triangle")
                .build();
        System.out.println(shapes);

        // colors.add("Yellow"); // এটি এরর দেবে কারণ ImmutableSet পরিবর্তনযোগ্য নয়।
    }
}

ImmutableMap

ImmutableMap কী?

ImmutableMap হল এমন একটি ম্যাপ (map), যা তৈরি হওয়ার পর পরিবর্তন করা যায় না। এটি HashMap-এর মতো কাজ করে কিন্তু আরও সুরক্ষিত এবং অপরিবর্তনীয়।

ImmutableMap তৈরি করা

import com.google.common.collect.ImmutableMap;

public class ImmutableMapExample {
    public static void main(String[] args) {
        // সরাসরি ImmutableMap তৈরি
        ImmutableMap<String, String> countryCapitals = ImmutableMap.of(
                "Bangladesh", "Dhaka",
                "India", "New Delhi",
                "USA", "Washington D.C."
        );
        System.out.println(countryCapitals);

        // ImmutableMap Builder ব্যবহার
        ImmutableMap<String, Integer> studentMarks = ImmutableMap.<String, Integer>builder()
                .put("Alice", 85)
                .put("Bob", 90)
                .put("Charlie", 80)
                .build();
        System.out.println(studentMarks);

        // countryCapitals.put("UK", "London"); // এটি কম্পাইল-টাইমে এরর দেবে।
    }
}

Immutable Collections কেন ব্যবহার করবেন?

  1. Thread-Safety: Immutable Collections পরিবর্তন করা যায় না, তাই একাধিক থ্রেড থেকে নিরাপদ।
  2. কোডের বাগ কমায়: অনিচ্ছাকৃত পরিবর্তন থেকে রক্ষা করে।
  3. শুধুমাত্র-পড়ার উপযোগী ডেটা (Read-Only Data) সংরক্ষণে কার্যকর।

ব্যবহার ক্ষেত্র

  1. Configuration Data: Immutable Collections কনফিগারেশন ডেটার জন্য উপযুক্ত।
  2. Constant Data: যেখানে ডেটা কখনো পরিবর্তন করা হবে না।
  3. Concurrent Programming: একাধিক থ্রেডের মধ্যে ডেটা সুরক্ষিত রাখতে।

Immutable Collections-এর সীমাবদ্ধতা

  • পরিবর্তনযোগ্য নয়, তাই নতুন ডেটা যোগ করতে হলে নতুন Immutable Collection তৈরি করতে হয়।
  • বড় ডেটা সেটে কিছুটা বেশি মেমোরি ব্যবহার হতে পারে।

Guava এর ImmutableList, ImmutableSet, এবং ImmutableMap প্রোগ্রামের সুরক্ষা এবং দক্ষতা বাড়াতে গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলো জাভার স্ট্যান্ডার্ড Collections API-র একটি শক্তিশালী বিকল্প।

Content added By
Promotion

Are you sure to start over?

Loading...